﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Entidad;
using System.Data.SqlClient;

namespace Crosland.Automotriz.Data.Dao.Linq
{
    public class clsT_VEN_OFERTA_DETDAO
    {
        private DM_CROSLAND_20130417Entities ContextoDeObjs = new DM_CROSLAND_20130417Entities();

        public List<T_VEN_OFERTA_DET_LISTAR> Listar(int ID_VEN_OFERTA_CAB)
        {
            var p = new object[] { new SqlParameter("@ID_VEN_OFERTA_CAB", ID_VEN_OFERTA_CAB) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_VEN_OFERTA_DET_LISTAR>("exec USP_OFERTA_DET_LISTAR @ID_VEN_OFERTA_CAB", p).AsQueryable().ToList();
            return resultado;
        }

        public List<T_VEN_OFERTA_DET_LISTAR> Seleccionar(int ID_VEN_OFERTA_CAB) 
        {
            var p = new object[] { new SqlParameter("@ID_VEN_OFERTA_CAB", ID_VEN_OFERTA_CAB) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<T_VEN_OFERTA_DET_LISTAR>("exec USP_OFERTA_DET_SELECT @ID_VEN_OFERTA_CAB", p).AsQueryable().ToList();
            return resultado;
        }

        public int ObtenerUltimoID()
        {
            try
            {
                var resultado = ContextoDeObjs.T_VEN_OFERTA_DET.Select(a => a.ID_VEN_OFERTA_DET).Max();
                return int.Parse(resultado.ToString());
            }
            catch (Exception)
            {
                return 0;
            }
        }

        public bool Insertar(T_VEN_OFERTA_DET Obj)
        {
            try
            {
                var p = new object[] { 
                    new SqlParameter("@ID_VEN_OFERTA_DET", Obj.ID_VEN_OFERTA_DET), 
                    new SqlParameter("@ID_VEN_OFERTA_CAB", Obj.ID_VEN_OFERTA_CAB), 
                    new SqlParameter("@ID_MATERIAL", Obj.ID_MATERIAL), 
                    new SqlParameter("@IMP_PRECIO_UNITARIO", Obj.IMP_PRECIO_UNITARIO),
                    new SqlParameter("@CANT_UNID_OFERT", Obj.CANT_UNID_OFERT),
                    new SqlParameter("@IMP_PRECIO_UNITARIO_OFERTA", Obj.IMP_PRECIO_UNITARIO_OFERTA)
                };
                int resultado = ContextoDeObjs.ExecuteStoreCommand("exec USP_OFERTA_DET_INSERTAR @ID_VEN_OFERTA_DET,@ID_VEN_OFERTA_CAB,@ID_MATERIAL,@IMP_PRECIO_UNITARIO,@CANT_UNID_OFERT,@IMP_PRECIO_UNITARIO_OFERTA", p);

                if (resultado == 1)
                    return true;
                else
                    return false;
            }
            catch (Exception)
            {
                return false;
            }
        }

        public bool Eliminar(int ID_VEN_OFERTA_CAB) 
        {
            var p = new object[] { new SqlParameter("@ID_VEN_OFERTA_CAB", ID_VEN_OFERTA_CAB) };
            ContextoDeObjs.ExecuteStoreCommand("exec USP_OFERTA_DET_ELIMINAR @ID_VEN_OFERTA_CAB", p);
            return true;
        }
    }
}
